/*
 *  SPAGL Copyright (C) 2008 Sam Pottinger
 *  This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser 
 *  General Public License as published by the Free Software Foundation; either version 2.1 of the License, or 
 *  (at your option) any later version. This library is distributed in the hope that it will be useful, but 
 *  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 *  See the GNU Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public License along with this library; if not, 
 *  write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
 */

package spagcore;

/**
 * Standardizes the general event objects for use in the Spagl event system
 */
public interface SpaglCoreEvent {
	
	// Constants for events
	public static final int SELECTION_EVENT = 1;
	public static final int ACTIVATED_EVENT = 2;
	public static final int WINDOW_CLOSING_EVENT = 3;
	public static final int WINDOW_CLOSED_EVENT = 4;
	public static final int WINDOW_OPENED_EVENT = 5;
	public static final int DEACTIVATED_EVENT = 6;
	public static final int WINDOW_RESTORED_EVENT = 7; // De-iconified
	public static final int WINDOW_DEICONIFIED_EVENT = WINDOW_RESTORED_EVENT; // De-iconified
	public static final int WINDOW_MINIMIZED_EVENT = 8; // Iconified
	public static final int WINDOW_ICONIFIED_EVENT = WINDOW_MINIMIZED_EVENT;
	public static final int SELECTION_CHANGED_EVENT = 9;
	public static final int TEXT_CHANGED_EVENT = 10;
	public static final int VALUE_CHANGED_EVENT = 11;
	
	
	/**
	 * Return the specific event represented by this wrapper
	 */
	public Object getEvent();
	
	/**
	 * Get the integer representation for the event being wrapped
	 */
	public int getEventType();
	
	/**
	 * Get the object that called/generated the event
	 */
	public Object getSourceObject();

}
